package com.zxq.ai.application.api;

import com.zxq.ai.domain.user.account.CashAccount;
import com.zxq.ai.domain.user.account.CashAccountOperateLog;

import java.util.List;

/**
 * BUser与【现金账户】有关的【用例】
 */
public interface IBUserCashAccount {

    /**
     * 账户总览
     *
     * @param userId
     * @return
     */
    CashAccount queryAccountOverview(String userId);

    /**
     * 查看账户操作记录
     * 流水 (Transaction Record / Transaction History)
     * 定义：流水是指账户中的所有交易记录的详细列表，可以包括每日、每周、每月甚至某一特定时间段内的所有交易活动。流水记录一般比对账单更详细和全面。
     * 用途：流水用于实时查看账户的交易活动，追踪每一笔交易的具体情况，如交易时间、金额、交易类型（存款、取款、转账等）和交易对象等。它有助于进行财务管理和风险控制。
     * 频率：流水记录一般可以实时查询，客户可以随时通过在线银行、ATM或者银行柜台获取。
     *
     * @param userId
     * @return
     */
    List<CashAccountOperateLog> queryAccountOperateRecord(String userId);

    /**
     * 【现金】充值
     * @param userId
     * @param amount
     */
    void cashRecharge(String userId, Long amount);

    /**
     * 【现金】提现
     * @param userId
     * @param amount
     */
    void cashWithdraw(String userId, Long amount);

}
